/**
 * 
 */
package cz.cvut.fit.crhonjar.mi.run.hawera.symboltable;

import cz.cvut.fit.crhonjar.mi.run.hawera.tree.TreeVisitorAcceptor;

/**
 * interface for symbol table
 * 
 * @author Jarec
 * 
 */
public interface SymbolTable extends TreeVisitorAcceptor {

	/**
	 * returns parent symbolTable
	 * 
	 * @return
	 */
	public SymbolTable getParentTable();

	/**
	 * inserts symbol into symbol table, if symbol was present in symbol table
	 * replaces old value with new value
	 * 
	 * @param symbolName
	 * @param symbolValue
	 * @return
	 */
	public boolean insertSymbol(String symbolName, Object symbolValue);

	/**
	 * checks if symbol is present in particular Symbol Table
	 * 
	 * @param symbolName
	 * @param searchParents
	 * 
	 * @return
	 */
	public boolean isSymbolPresent(String symbolName, boolean searchParents);
}
